#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//int main()
//{
//    char arr[100][100] = { 0 };
//    int i = 0;
//    for (i = 0; i < 100; i++)
//    {
//        if (scanf("%s", arr[i]) == EOF)
//            break;
//    }
//    for (i--; i >= 0; i--)
//    {
//        if (i > 0)
//            printf("%s ", arr[i]);
//        else
//            printf("%s", arr[i]);
//
//    }
//    return 0;
//}

//int main()
//{
//	int a = 0;
//	while (scanf("%d",&a)!=EOF)
//	{
//		printf("%d\n", a);
//	}
//	return 0;
//}
//


//int main()
//{
//	int a, b;
//	scanf("%d%d", &a, &b);
//	int i=1;
//	/*for (i = 1; 1; i++)
//	{
//		if ((a * i) % b == 0)
//			break;
//	}*/
//	while ((a * i) % b)
//	{
//		i++;
//
//	}
//	printf("%d", a * i);
//
//	return 0;
//}
//int main()
//{
//	char arr[100];
//	gets(arr);
//	printf("%s", arr);
//	return 0;
//}

#include <stdio.h>
#include<string.h>
void nx(char* left, char* right)
{
    while (left < right)
    {
        char jh = *left;
        *left = *right;
        *right = jh;
        left++;
        right--;
    }
}

int main() {
    char arr[101];
    gets(arr);
    int len = strlen(arr);
    nx(arr, arr + len - 1);
    char* ks = arr;
    while (*ks)
    {
        char* add = ks;
        while (*ks != ' ' && *ks != '\0')
        {
            ks++;
        }
        nx(add, ks - 1);
        if (*ks == ' ')
            ks++;
    }
    printf("%s", arr);
    return 0;
}